home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / et / et3_0-a1.lha / et3 / src / Token.C < prev    next >
C/C++ Source or Header  |  1992-05-05  |  2KB  |  109 lines

  1. #ifdef __GNUG__
  2. #pragma implementation
  3. #endif
  4.  
  5. #include "Token.h"
  6.  
  7. #include "Math.h"
  8. #include "String.h"
  9.  
  10. const int cDoubleClick= 500;  // 0.5 sec
  11.  
  12. Token::Token()
  13. {
  14.     Code= eEvtNone;
  15.     Flags= eFlgNone;
  16. }
  17.  
  18. Token::Token(EventCodes ec, EventFlags f, Point p)
  19. {
  20.     Code= ec;
  21.     Flags= f;
  22.     Pos= p;
  23. }
  24.  
  25. bool Token::DoubleClick(Token &t)
  26. {
  27.     int t1= t.Pos.x-Pos.x, t2= t.Pos.y-Pos.y;
  28.     long t3= t.At-At;
  29.     if (t.IsMouseButton())
  30.     if (t.Code == Code && Math::Abs(t1) < 2 && Math::Abs(t2) < 2
  31.                  && Math::Abs(t3) < cDoubleClick)
  32.         return TRUE;
  33.     return FALSE;
  34. }
  35.  
  36. char Token::MapToAscii()
  37. {
  38.     return (Code & 0x7f) + 0x60;
  39. }
  40.  
  41. Point Token::CursorPoint()
  42. {
  43.     switch (CursorDir()) {
  44.     case eCrsUp:
  45.     return Point(0,-1);
  46.     case eCrsDown:
  47.     return Point(0,1);
  48.     case eCrsLeft:
  49.     return Point(-1,0);
  50.     case eCrsRight:
  51.     return Point(1,0);
  52.     default:
  53.     return gPoint0;
  54.     }
  55. }
  56.  
  57. void Token::Dump()
  58. {
  59.     extern int gDebug;
  60.     char *c= "???";
  61.     
  62.     if (gDebug == 0)
  63.     return;
  64.     
  65.     int code= Code;
  66.     switch(Code) {
  67.     case eEvtNone:
  68.     c= "None";
  69.     break;
  70.     case eEvtLocMove:
  71.     c= "LocMove";
  72.     break;
  73.     case eEvtLocStill:
  74.     c= "LocStill";
  75.     break;
  76.     case eEvtEnter:
  77.     c= "Enter";
  78.     break;
  79.     case eEvtExit:
  80.     c= "Exit";
  81.     break;
  82.     case eEvtLocMoveBut:
  83.     c= "LocMoveBut";
  84.     break;
  85.     case eEvtIdle:
  86.     c= "Idle";
  87.     break;
  88.     case eEvtLeftButton:
  89.     c= "LeftButton";
  90.     break;
  91.     case eEvtMiddleButton:
  92.     c= "MiddleButton";
  93.     break;
  94.     case eEvtRightButton:
  95.     c= "RightButton";
  96.     break;
  97.     default:
  98.     if (Code >= eEvtPfkFirst && Code <= eEvtPfkLast) {
  99.         c= "PfkFirst";
  100.         code-= eEvtPfkFirst;
  101.     } if (Code >= eEvtAscFirst && Code <= eEvtAscLast)
  102.         c= "AscFirst";
  103.     if (Code >= eEvtMetaFirst && Code <= eEvtMetaLast)
  104.         c= "MetaFirst";
  105.     break;
  106.     }
  107.     cerr.form("c:%s(%d) f:%04x x:%d y:%d\n", c, code, Flags, Pos.x, Pos.y);
  108. }
  109.